Photo Selection and Order Start – Plugin for Lightroom Classic
(This is the English translation of ANLEITUNG.md. The plugin is called “Photo Selection and Order Start” in every Lightroom language; menus and messages follow the Lightroom interface language (English or German). Only the plugin folder’s name on disk, Fotowahl und Reihenfolge.lrplugin, stays unchanged, since it must not be renamed.)
This plugin exports a collection as one or more self-contained HTML gallery files that clients open in any regular browser and freely reorder there by dragging (mouse or finger/touch, e.g. on a tablet). While doing so, they mark individual photos to decide which files they end up receiving: picked yields web files, for print yields A5 prints, for social media yields specially cropped files in 1×1 format, and not wanted yields no files at all (the photo itself is not deleted, it just isn’t delivered). The plugin then reads the file they send back, reorders the original collection in Lightroom Classic accordingly, and tags each photo with its own matching plugin metadata field depending on the choice (picked, for print, for social media, or not wanted).
No Zoom/Teams, no remote control, no third-party software needed on the client’s side – just a browser.
Short instructions
- Select a collection in the Library panel, then Library → Plug-in Extras → Export one or more HTML galleries for client….
- Send the resulting
.html file to the client (e.g. via WeTransfer or a cloud storage link).
- The client opens one or more files one after another in the browser, drags the photos into order, marks them (Picked / Not wanted / For print / For social media), then clicks Download selection to download the small
.txt result file or files to a local folder and sends them back to the sender.
- Back in Lightroom: select the same collection, then Library → Plug-in Extras → Apply order from client file…, choose the received file or files, confirm.
- Finally choose View → Sort → Custom Order so the new order becomes visible in the Library grid.
- In the metadata, filter by Picked / Not wanted / For print / For social media and process further.
See “Workflow” below for the full step-by-step with all details and options.
Installation
- Place this whole folder
Fotowahl und Reihenfolge.lrplugin as-is anywhere on your computer (e.g. Documents/Lightroom-Plugins/Fotowahl und Reihenfolge.lrplugin). The folder name must end in .lrplugin and should not be renamed afterwards (Lightroom remembers the exact folder path).
- In Lightroom Classic: File → Plug-in Manager….
- Bottom left, click Add…, then select the
Fotowahl und Reihenfolge.lrplugin folder.
- The plugin appears in the list as “Photo Selection and Order Start” with status Enabled. Close the window.
- The Library → Plug-in Extras submenu has two commands:
- Export gallery for client…
- Apply order from client file…
Workflow
1. Select the collection (or part of it) and export the gallery
- In the Library panel, click exactly one collection. For most jobs, a single export producing a single
.html file is all you need – for very large collections you can instead select just part of the photos and repeat the export several times (several passes, see below).
- Note on the very first run: The first time you run "Apply order from client file…" on a given collection, no photo yet has a position stored by the plugin – so there is no "previous" order worth preserving yet. In this case the plugin places the whole block of photos named in the file at the beginning of the collection, regardless of where those photos used to sit. From the second run onward, the plugin remembers the order itself and inserts new blocks at the correct spot instead of pushing everything to the front again.
- Menu Library → Plug-in Extras → Export gallery for client…. If only some photos in the Library grid are selected, the plugin asks: export only those, or the whole collection? Then it asks whether to reset the plugin’s own markers before exporting – handy for a clean start before a new round with a client.
- Choose a destination folder. Lightroom exports all photos downsized (long edge 1400 px, JPEG) into a file
PhotoSelection_<CollectionName>.html. For several passes with the same collection, the plugin automatically appends -2, -3, … without overwriting anything – so any number of partial galleries can go into the same folder.
- Optionally, a dialog then appears to enter a link to an existing gallery. If you enter a link here, it appears in the gallery HTML for the client as a ‘To the gallery’ button right next to the title. Leave it empty and click ‘Continue’ if not needed.
2. Send the file(s) to the client
- Zip the
.html file(s) and send them via WeTransfer, Google Drive, OneDrive, etc. (usually too big for email, no problem for cloud sharing services). The client unzips and opens each file by double-clicking it, in the default browser – no installation, no login needed.
3. Client sorts (and rejects photos if needed)
- Photos are brought into the desired order by dragging. The icons on a photo also let it be marked as ⚑ Picked (web), 🖨 For print, $ For social media, or with ✕ as Not wanted (see “Picked (Web) etc. in Lightroom” below). Progress is continuously auto-saved in the browser (only on the same device/browser).
- Tiles can reliably be dragged all the way to the front or back, the round icon top left lets several photos be marked and moved together at once, and every tile shows the whole photo uncropped in its correct aspect ratio (portrait/landscape, panorama). Tiles can be enlarged or shrunk with +/-, and the language is switched with the DE/EN switcher.
- At the end, click Download selection. Each exported gallery file produces its own, running-numbered
.txt file (e.g. PhotoSelection_ Ireland 2026-order_1.txt; follows the gallery’s own DE/EN switcher, see “Gallery in German or English” below) – with several passes there are correspondingly several, all of which need to be sent back.
4. Apply the order in Lightroom
- Select the same collection again, then menu Library → Plug-in Extras → Apply order from client file…. Choose the received
.txt file and confirm with Apply. With several passes, read in each returned file one by one, in any order – each only reorders its own part, the rest of the collection stays untouched.
- Note on the very first run: The first time you run "Apply order from client file…" on a given collection, no photo yet has a position stored by the plugin – so there is no "previous" order worth preserving yet. In this case the plugin places the whole block of photos named in the file at the beginning of the collection, regardless of where those photos used to sit. From the second run onward, the plugin remembers the order itself and inserts new blocks at the correct spot instead of pushing everything to the front again.
- Last step, done by hand (the plugin technically cannot set this itself): choose menu View → Sort → Custom Order. Only then does the new order become visible in the Library grid.
- Optional, to get file names in the right order for export: select all photos, Library → Rename Photos… (F2), File Naming "Custom Setting", Edit…, then combine the Sequence # (0001) token (category "Sequence and Date"), "_", and the Filename token (category "Image Name").
Each photo in the gallery has four icons:
- ✕ Not wanted
- ⚑ Picked – marks a particularly good photo. In the gallery itself this is mutually exclusive with Not wanted (a photo can’t be selected as both “picked” and “not wanted” in the gallery at the same time).
- 🖨 For print – marks a photo for printing.
- $ For social media – marks a photo for use on social media in 1×1 format.
For print and For social media are independent of Picked/Not wanted and freely combinable with each other. On Apply, all four markers are set via an own, plugin-defined metadata field (one per marker) – NOT via Lightroom’s built-in pick/reject flag or a color label anymore.
How to find/filter marked photos in Lightroom:
- Library filter bar (above the grid) → “Metadata” → click one of the columns and switch it to “Photo Selection and Order Start” → the field you want (“Picked”, “For print”, “For social media”, or “Not wanted”). Photos with the field set show “Yes” there, unmarked photos stay blank. Several columns can be shown at once, to see several fields side by side.
- Alternatively in the Metadata panel: at the top of the panel (normally set to “EXIF and IPTC”), switch to “All Plugin Metadata” or directly to “Photo Selection and Order Start” – all four fields then appear as their own rows for the currently selected photo.
The markers are deleted on a later export for clients, if you choose to when asked (see “Workflow” above, step 1). Want to delete all markers without doing a new export? Use the Reset markings and sort position… tool in the Plugin Manager (see “Quick overview and tools inside the Plugin Manager” below).
- If a photo in the order file no longer exists in the collection (e.g. because it was removed in the meantime), it is ignored and shown in the summary.
- If a photo is in the collection but did not appear in the order file (e.g. added afterwards, or part of a different batch from a multi-part export), it stays exactly where it currently is – nothing is lost, and it is no longer moved to the end.
- Photos marked Not wanted are flagged via the plugin’s own metadata field (see “Picked (Web) etc. in Lightroom” above) – easy to find via the Library filter bar or the Metadata panel.
- No photos are ever deleted – neither from the collection nor from disk. Finally sorting out rejected photos is deliberately left to you (e.g. filter by “not wanted” after a quick check, then remove them from the collection yourself).
Smart Collections are not supported
Apply order from client file… only works on regular collections. If a Smart Collection (whose photos are determined automatically by rules, e.g. “Duplicates”) is selected when running it, the plugin shows a corresponding message and stops without changing anything.
Folders are not supported for “Apply order”
Apply order from client file… only works on collections, not on folders (the filesystem folder the photos live in). If a folder is accidentally selected instead of a collection, the plugin shows a corresponding message and stops without changing anything.
Important note on reliability
This plugin was developed with the help of the AI Claude (Anthropic). Both the order mechanism and all four markers are already used repeatedly in real client jobs and work reliably.
Gallery in German or English (language switcher for the client)
Top right in the gallery (next to the zoom magnifier) there is a small DE / EN switcher. The client can choose for themselves which language the gallery is shown in – buttons, the help popup, status messages, and the count display at the top (e.g. “3 Fotos (1 nicht gewünscht)” vs. “3 photos (1 not wanted)”) switch over completely. German is the default when the file is first opened. The choice is saved in the browser (like the sorting progress) and persists when the same file is reopened. The downloaded file’s name follows this choice too: …-reihenfolge_1.txt in German, …-order_1.txt in English, each prefixed with the gallery file’s own name and ending in a running number (the help popup names the actual name of this gallery, e.g. “Fotoauswahl_Ireland 2026-reihenfolge_Y.txt”). Reading in the .txt file does not change, and the file name doesn’t matter when applying it in Lightroom – so the language only affects what the client sees, not what arrives in Lightroom.
The plugin’s own messages inside Lightroom (DE/EN)
Lightroom automatically picks the language based on Lightroom’s own interface language. If your Lightroom runs in German, you still see German as before; if someone uses the plugin with Lightroom set to English (as assumed throughout this guide), the English text appears automatically. Under the hood, the English translation lives in the file TranslatedStrings_en.txt in the plugin folder – Lightroom reads it in on its own at startup, the plugin doesn’t need to do anything extra.
The rare error case (“Unsure whether the order was applied correctly”) and the diagnostic info are deliberately kept detailed.
The exported gallery’s file name also follows the Lightroom language: Fotoauswahl_<CollectionName>.html in German, PhotoSelection_<CollectionName>.html in English.
Same for the plugin’s own name as shown in the Plug-in Manager (not to be confused with the folder name Fotowahl und Reihenfolge.lrplugin on disk – the Plug-in Manager doesn’t show the folder name): “Photo Selection and Order Start” in both English and German.
With Lightroom set to English, messages, menu items, and the file name all show up correctly in English.
Faster loading for large collections (Lazy Loading)
For collections with very many photos, the gallery in the browser only loads the images that are currently visible (plus a buffer just outside the screen). Photos further down the list only load once you scroll near them. This noticeably reduces memory usage on the client’s PC/tablet for large galleries.
Important: this has nothing to do with an internet connection. All image data is fully embedded in the single HTML file from the start (Base64-embedded) – “Lazy Loading” here only delays when the browser actually displays an image that’s already present in the file; nothing is loaded from the internet afterwards. The gallery therefore works fully offline.
The Plugin Manager (File → Plug-in Manager… → click “Photo Selection and Order Start”) shows two extra sections above Status/Version/Path:
- Quick overview – one or two sentences about the workflow and the four markers, plus a button Show full guide… that opens this complete guide as its own HTML file (
Anleitung-EN.html, right in the plugin folder) in the default browser – the same file can also be opened by hand with a double-click in Explorer/Finder.
- Tools – contains the button Reset markings and sort position…. First select exactly one collection in the Library panel, then click: after a short confirmation (showing the photo count and collection name), the four marker fields AND the internal sort position (see “Important note on reliability” below) are reset to “no value” for ALL photos in that collection. Nothing is deleted – the photos stay unchanged in the collection. Handy for cleanly getting a collection “ready to go” again, e.g. when files for a client have already been exported but their order file hasn’t arrived yet and you want a clean restart.
Right next to it, the button Remove promo version…: looks right next to this plugin for a folder named “Fotowahl und Reihenfolge promo.lrplugin” (the demo version used for testing/showing to clients) and moves it – after confirmation – to the Recycle Bin (not permanently deleted). One manual step is still needed afterward in Lightroom: File → Plug-in Manager… → select the demo version → “Remove”, then restart Lightroom. The restart matters: Lightroom keeps the metadata fields registered by the demo version (e.g. “Picked (Demo)”) in memory until restarted, even after the plugin folder is gone and its registration has been removed in the Plug-in Manager – without a restart, these fields keep showing up (harmlessly) in the Library Filter bar and in the Metadata panel’s dropdown. This is a limitation of Lightroom itself; no plugin can automate away that restart.
Technical notes
- The gallery HTML file is completely self-contained (no external servers, no internet connection needed) – all images are embedded directly as Base64 in the file. This also applies with Lazy Loading enabled (see above) – only already-embedded images are displayed with a delay, nothing is loaded from the internet.
- Sorting works via “Pointer Events” (not the classic HTML5 drag function), so it works equally on mouse and touchscreens.
- The link between a gallery photo and the original photo in Lightroom is made via the internal photo UUID (not the filename) – so even if two photos happen to have the same name, the matching still works correctly.
- For virtual copies, the gallery additionally appends the copy name to the caption under the photo (e.g. “8449.NEF (Copy 2)” with English Lightroom) – without this, several copies of the same photo would show an identical caption, because Lightroom’s filename metadata for a virtual copy always returns the name of the underlying raw file.